package 力扣;

/**
 示例 1：

 输入："12"
 输出：2
 解释：它可以解码为 "AB"（1 2）或者 "L"（12）。
 示例 2：
 输入："226"
 输出：3
 解释：它可以解码为 "BZ" (2 26), "VF" (22 6), 或者 "BBF" (2 2 6) 。
 示例 3：
 输入：s = "0"
 输出：0
 示例 4：

 输入：s = "1"
 输出：1
 示例 5：

 输入：s = "2"
 输出：1
 */
public class _91解码方法 {

    public int numDecodings(String s) {
        int len = s.length();
        int[] dp  = new int[len+1];
        dp[0] =1;
        dp[1] =s.charAt(0)=='0'?0:1;
        for (int i = 2; i <=len ; i++) {
            if( s.charAt(i-1)!='0')
                dp[i] += dp[i-1];
            if(s.charAt(i-2)!='0' &&Integer.valueOf(s.substring(i-2,i))<=26 ){
                dp[i] += dp[i-2];
            }
        }
        return dp[len];
    }
}
